Merged
Conversation
…verhaul New engine features: - Auto row height: viewport-first sync measurement, idle async sweep, manual-always-wins priority, scroll compensation - Column stretch: 'all'/'last' modes, ResizeObserver, frozen column handling - Text wrapping: word-boundary + char fallback, multi-line canvas rendering - Date picker: calendar overlay, keyboard nav, ARIA dialog, scroll-aware - DateTime editor: calendar + hour/minute spinners, ISO commit format - Context menu submenus: recursive nesting, hover delays, keyboard nav - Locale system: EN/RU packs, runtime switching, resolveLocale() merge - Cell editor registry: priority-sorted resolution, CellEditor lifecycle - Benchmark suite: BenchmarkRunner with 6 metrics across 1K/10K/100K rows Documentation overhaul: - Internal: ARCHITECTURE.md (all engine subsystems), TESTING-GUIDE.md, DOCUMENTATION-STYLE-GUIDE.md, CHECKLIST.md, CLAUDE.md - Site audit: 47 existing pages verified against source code, 80+ factual errors fixed (wrong signatures, fabricated payloads, incorrect types, outdated class names) - 6 new guide pages: auto-row-height, text-wrapping, column-stretch, date-editors, cell-editor-registry, locale - Cross-references: features index, editing, configuration, cell-types - Context menu submenus section with positioning, timing, keyboard nav - Site: 48 → 54 pages, 0 build errors Demo: sidebar layout, feature toggles, badges, 1K/1M row toggle Tests: 1708 unit tests, 13 E2E Playwright tests
5894868 to
00d5590
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Auto row height, column stretch, date picker, context menu submenus, locale, cell editor registry, datetime editor.
Changes
Benchmark suite: BenchmarkRunner, measureMultiRun, computeStats, measureThroughput — 6 metrics across 1K/10K/100K datasets.
Text measurement + word-wrap: TextMeasureCache extended with getWrappedLines (word-boundary + char fallback), measureWrappedHeight. ColumnDef.wrapText option. CellTextLayer renders multi-line wrapped text.
Auto row height: RowStore auto/manual separation (manual wins). LayoutEngine.setRowHeightsBatch() for O(n) batch. AutoRowSizeManager: viewport-first sync + requestIdleCallback async sweep. Dirty tracking, scroll compensation.
Column stretch: ColumnStretchManager with 'all' and 'last' modes. ResizeObserver. Manual resize exclusion, frozen column handling.
Date picker: DatePickerOverlay — pure-DOM calendar, keyboard nav, ARIA role=dialog.
Context menu submenus: ContextMenuItem.submenu for recursive nesting. Chevron, hover delay, keyboard nav. Empty menu prevention.
Locale system: EN/RU packs, resolveLocale(), runtime switching.
Cell editor registry: CellEditor interface, CellEditorRegistry with priority resolution. DatePickerEditor adapter. InlineEditor fallback.
DateTimeEditor: Calendar + hour/minute spin controls for 'datetime' columns. ISO YYYY-MM-DDTHH:mm commit. Tab cycling, Now button.
Demo overhaul: Sidebar layout, all features demonstrated, 1K default / 1M toggle.
Tests